Robotic path planning is used in a variety of industries to improve throughput. For example, in a manufacturing processing facility, a robotic system can be used to automate processing (e.g., heating, cutting, gouging and marking) of workpieces by one or more thermal processing torches (e.g., plasma arc torches). Specifically, the manufacturing facility can include a computer numeric controller (CNC) used by an operator to input information specifying various operating parameters. The CNC can be in electrical communication with one or more robots of the manufacturing processing facility, where at least one robot can have a thermal processing torch mounted thereon for automatically processing a workpiece. In operation, a user can supply inputs to the CNC to program the robot, such that the robot moves the thermal processing torch along a planned path to process the workpiece. This type of path planning can be used to create a transition between two robotic operations or in a pick-n-place operation where processing starts at a designated location.
Robotic path planning can be used in industrial manufacturing applications, such as trimming, cutting (e.g., using laser, water-jet or plasma), 3D machining, de-burring, welding, dispensing, surfacing (e.g., polishing, sanding or grinding), spraying (e.g., thermal projection, cold spray, coating or painting) and additive applications (e.g., 3D printing or material build-up). However, robotic path planning is not limited to the manufacturing processing industry, as described above. A variety of other industries also benefit from such planning. For example, robotic path planning can be used in the medical industry for robotic assisted medical services, in the entertainment industry, in automated warehousing for sorting, assembling, picking and/or placing applications.
Generally, a robot is defined by a set of links, which are the solid structural members of the robot, and a set of joints, which are the movable couplings between the joints. In addition, a tool center point (TCP) can be defined in relation to the robot or a tool mounted on the robot, where the TCP refers to the robot position, as well as the focal point of the tool if it is mounted on the robot (e.g., the tip of the plasma arc torch mounted to the robot). In the context of the present invention, a “path” of a robot refers to a path for moving the TCP from a start pose to an end pose. A “pose” refers to a set of position and orientation of the robot's TCP. In addition, in the context of the present invention, a “configuration change path” refers to a path for changing the configuration of the robot, such as turning one or more joints of the robot to reach a desired end configuration. Further, “a joint-turn change path” refers to a path for turning a particular joint of the robot to reach a desired end joint-turn.
Typically, path planning for a robotic system is accomplished through either a series of rapid moves of a robot executed in a joint space or a series of feed moves of a robot executed in a Cartesian space. In particular, joint-space planning involves planning joint moves of a robot by specifying a set of joint parameters that describes the configuration of the robot. Joint-space planning does not require verification of the path for robotic errors, such as singularity errors or out-of reach errors. This type of planning naturally incorporates configuration and joint-turn changes of the robot. However, planning in joint space typically results in an unintuitive movement of the robot in the three-dimensional space. For example, in an exemplary planning process, the user simulates the joint moves of a robot between a start posture and an end posture. The user then verifies if the robot motion remains collision free. If not, the user adds a few via points between the start and end postures to avoid collision. However, it is extremely difficult to produce an accurate joint-space simulation of the robot, where the accuracy of the simulation depends on many factors, including robot parameters, robot loading and controller settings. For these reasons, joint-space planning for a transition in tight three-dimensional spaces is not feasible.
Cartesian-space planning involves planning a path of a robot by specifying a set of feed moves in the Cartesian space between a start posture and an end posture. Although suitable for tight spaces, this approach requires configuration information and verification of the path for possible robotic and collosion errors.
Generally, path planning tools in today's market are either manual planners or automated solvers. For manual planners, the user needs to create a series of transition points and meticulously ensure that the resulting path is efficient and error free (e.g., collision-free). For example, in both joint-space planning and Cartesian-space planning, the placement of via points or feed moves in a three-dimensional environment can be made through a point-by-point manual teaching technique, which requires the user to move the robot to each via point between the start and end postures and save each via point. Upon completion, the path, which is defined by the start point, the via points and the end point, is tested to make sure that it is free of robotic or collision errors. If an error exits, some or all of the saved points are modified to remove the error. This is a repetitive process that is time consuming and challenging. Automated solvers typically use some type of heuristics to drag the robot incrementally from the start point of the transition to the desired target without planning the entire path as an initial step. These automated approaches also do not allow a user to control or participate in the planning process, such as allowing the user to refine a path or perform other types of interactions. Further, in the context of manufacturing processing, these tools are typically unable to design efficient paths in complex manufacturing facilities that have numerous workpieces of varying geometries.